home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / ver_cont / aegis.2 < prev    next >
Encoding:
Text File  |  1996-11-16  |  15.0 KB  |  463 lines

  1.  
  2.  
  3.  
  4. readme(aegis)                        readme(aegis)
  5.  
  6.  
  7. NAME
  8.     aegis -    project    change supervisor
  9.     Copyright (C) 1991, 1992, 1993,    1994, 1995 Peter Miller;
  10.     All rights reserved.
  11.  
  12.     Aegis is distributed under the terms of    the GNU    General
  13.     Public License.     See the LICENSE section, below, for more
  14.     details.
  15.  
  16.     aegis (ee.j.iz)    n., a protection, a defence.
  17.  
  18. DESCRIPTION
  19.     Aegis is a CASE    tool with a difference.     In the    spirit of
  20.     the UNIX Operating System, Aegis is a small component
  21.     designed to work with other programs.
  22.  
  23.     Many CASE systems attempt to provide everything, from
  24.     bubble charts to source    control    to compilers.  Users are
  25.     trapped    with the components supplied by    the CASE system,
  26.     and if you don't like one of the components (it    may be
  27.     too limited, for instance), then that is just tough.
  28.  
  29.     In contrast, UNIX provides many    components of a    CASE
  30.     system - compilers, editors, dependency    maintenance tools
  31.     (such as make),    source control tools (such as RCS).  You
  32.     may substitute the tool    of your    choice if you don't like
  33.     the ones supplied with the system - gcc, jove, cake, to
  34.     name just a few.  Aegis    adds to    this list with software
  35.     configuration management, and true to UNIX philosophy,
  36.     Aegis does not dictate the choice of any of the    other
  37.     tools (although    it may stretch them to their limits).
  38.  
  39.     Enough hype, what is it    that Aegis does?  Just what is
  40.     software configuration management?  This question is
  41.     sufficiently broad as to require a book    in answer.  In
  42.     essence, Aegis is a project change supervisor.    It
  43.     provides a framework within which a team of developers
  44.     may work on many changes to a program independently, and
  45.     Aegis coordinates integrating these changes back into the
  46.     master source of the program, with as little disruption
  47.     as possible.  Resolution of contention for source files,
  48.     a major    headache for any project with more than    one
  49.     developer, is one of Aegis's major functions.
  50.  
  51.     It should be noted that    Aegis is a developer's tool, in
  52.     the same sense as make or RCS are developer's tools.  It
  53.     is not a manager's tool    - it does not provide progress
  54.     tracking or manage work    allocation.
  55.  
  56. BENEFITS
  57.     So why should you use Aegis?
  58.  
  59.     Aegis uses a particular    model of the development of
  60.     software projects.  This model has a master source (or
  61.  
  62.  
  63.  
  64.                                 1
  65.  
  66.  
  67.  
  68.  
  69.  
  70. readme(aegis)                        readme(aegis)
  71.  
  72.  
  73.     baseline) of a project,    and a team of developers creating
  74.     changes    to be made to this baseline.  When a change is
  75.     complete, it is    integrated with    the baseline, to become
  76.     the new    baseline.  Each    change must be atomic and self-
  77.     contained, no change is    allowed    to cause the baseline to
  78.     cease to work.    "Working" is defined as    passing    it's own
  79.     tests.    The tests are considered part of the baseline.
  80.     Aegis provides support for the developer so that an
  81.     entire copy of the baseline need not be    taken to change    a
  82.     few files, only    those files which are to be changed need
  83.     to be copied.
  84.  
  85.     In order to ensure that    changes    are unable to cause the
  86.     baseline to cease to work, Aegis mandates that changes be
  87.     accompanied by at least    one test, and that all such tests
  88.     be known to complete successfully.  These steadily
  89.     accumulated tests form an ever increasing regression test
  90.     suite for all later changes.  There is also a mandatory
  91.     review stage for each change to    the baseline.  While
  92.     these requirements may be relaxed per-change or    even per-
  93.     project, doing so potentially compromises the "working"
  94.     definition of the baseline.
  95.  
  96.     The win    in using Aegis is that there are O(n)
  97.     interactions between developers    and the    baseline.
  98.     Contrast this with a master source which is being edited
  99.     directly by the    developers - there are O(n!)
  100.     interactions between developers    - this makes adding "just
  101.     one more" developer a potential    disaster.
  102.  
  103.     Another    win is that the    project    baseline always    works.
  104.     Always having a    working    baseline means that a version is
  105.     always available for demonstrations, or    those "pre-
  106.     release    snapshots" we are always forced    to provide.
  107.  
  108.     The above advantages are all very well - for management
  109.     types.    Why should Joe Average Programmer use Aegis?
  110.     Recall that RCS    provides file locking, but only    for one
  111.     file at    a time.     Aegis provides    the file locking,
  112.     atomically, for    the set    of files in the    change.     Recall
  113.     also that RCS locks the    file the instant you start
  114.     editing    it.  This makes    popular    files a    project
  115.     bottleneck.  Aegis allows concurrent editing, and a
  116.     resolution mechanism just before the change must be
  117.     integrated, meaning fewer delays for J.A.Programmer.
  118.  
  119. NEW IN THIS RELEASE
  120.     A number of features have been added to    Aegis with this
  121.     release.  A few    of them    are detailed here:
  122.  
  123.     * The merging behaviour    of the aed(1) command has
  124.     changed.  If any files require merging,    it only    merges.
  125.     In this    way, merged files are not lost in the rest of the
  126.     output.     Also, there are now command line options and
  127.  
  128.  
  129.  
  130.                                 2
  131.  
  132.  
  133.  
  134.  
  135.  
  136. readme(aegis)                        readme(aegis)
  137.  
  138.  
  139.     user preferences so that you can select    to only    merge or
  140.     only difference.  See aed(1) and aeuconf(5) for    more
  141.     nformation.
  142.  
  143.     * It is    now possible to    assign symbolic    names to project
  144.     deltas.     This means that you may now recreate earlier
  145.     project    baselines by name.
  146.  
  147.     * All commands which accept a -Edit option now check for
  148.     most errors before commencing the edit.     This avoids
  149.     wasted edits in    many error cases.
  150.  
  151.     * Fuzzy    file name matches are now used to improve the
  152.     error messages from aecp, aerm,    etc.
  153.  
  154.     * Version number separators in project names are
  155.     preserved across new releases.    Particularly, you can use
  156.     a minus    ('-') between the name and the major version
  157.     number.
  158.  
  159.     * A new    ``copyright_years'' project attribute has been
  160.     added.    This is    a list of years    maintained at integrate
  161.     begin time, to automate    the insertion of list of
  162.     copyright years    into copyright messages    and
  163.     documentation.    There is a new ${Copyright_Years}
  164.     substitution and the copyright years are also listed in
  165.     the ``aegis -list version'' listing.  See aesub(5) and
  166.     ael(1) for more    information.
  167.  
  168.     * It is    now possible to    specify    patterns for acceptable
  169.     and unacceptable filenames in the project config file.
  170.     See aepconf(5) for more    information.
  171.  
  172.     * Four more functions have been    added to the report
  173.     language: length, split, substr    and wrap.  See aer(5) for
  174.     more information.
  175.  
  176.     * The tests distributed    with  are now more stable on very
  177.     fast hosts.  See the environment variables section of
  178.     aeb(1) for more    information.
  179.  
  180.     * The lib/config.example directory of the distribution
  181.     now contains files with    example    portions of the    project
  182.     config file.  May thanks to David R Shue
  183.     <shue@ll.mit.edu> for this suggestion.
  184.  
  185.     Changes    made in    the previous release included:
  186.  
  187.     This release of    Aegis provides 3 of the    most commonly
  188.     requested features: support for    heterogeneous
  189.     development, support for a greater range of DMTs, support
  190.     for user-defined reports.
  191.  
  192.     * Aegis    now supports heterogeneous development.     Now you
  193.  
  194.  
  195.  
  196.                                 3
  197.  
  198.  
  199.  
  200.  
  201.  
  202. readme(aegis)                        readme(aegis)
  203.  
  204.  
  205.     can be sure that your project not only always builds and
  206.     tests sucessfully, but that it does so across a
  207.     configurable set of system or hardware architectures.
  208.     See the    Heterogeneous Development secion of the    Tips and
  209.     Traps chapter of the User Guide    for more information.
  210.  
  211.     * Aegis    can now    cope with a wider range    of Dependency
  212.     Maintenance Tools (DMTs).  It now has the ability to fill
  213.     development directories    with symbolic links to all files
  214.     in the baseline    which are not present in the development
  215.     directory.  This allows    DMTs to    assume all files are
  216.     present    below the current directory, allowing DMTs such
  217.     as cake    and GNU    Make to    be used.  See the Dependency
  218.     Maintenance Tool section of the    User Guide and aeb(1) for
  219.     more information.
  220.  
  221.     * Aegis    now has    a report generator, so you can create
  222.     your own reports.  Many    "canned" reports are included in
  223.     this distribution; of particular interest to many will be
  224.     the File_Activity report, which    details    currently active
  225.     files.    See aer(1) for more information.
  226.  
  227.     * Aegis    is now configured using    a shell    script called
  228.     configure, distributed with the    package.  This shell
  229.     script is generated using GNU Autoconf.     See the BUILDING
  230.     file for more information.
  231.  
  232.     * The AEGIS environment    variable has been renamed
  233.     AEGIS_PATH, to bring it    in line    with the AEGIS_PROJECT
  234.     and AEGIS_CHANGE environment variable names.  The old
  235.     name will keep working for some    time, but aegis    will warn
  236.     you.
  237.  
  238.     * Filename lengths are now configurable.  The 14
  239.     character portability limit is still the default, but a
  240.     higher limit is    configurable for each project, up to the
  241.     filesystem filename limit.  See    aepconf(5) for more
  242.     information.
  243.  
  244.     * It is    now possible to    specify    that filenames must be
  245.     within the minimum character set mandated by POSIX.  The
  246.     default    is as before, to allow any printing character.
  247.     See aepconf(5) for more    information.
  248.  
  249.     * Limits on the    length of project names    have been
  250.     relaxed.  Project names    are now    only limited by    the
  251.     filesystem filename limit.
  252.  
  253.     * It is    now possible to    specify    the command to run tests,
  254.     allowing a project to use a specialized    test facility,
  255.     rather than be forced to use shell scripts.  See aet(1)
  256.     and for    more information.
  257.  
  258.     * The commands which accept the    -Edit now preserve the
  259.  
  260.  
  261.  
  262.                                 4
  263.  
  264.  
  265.  
  266.  
  267.  
  268. readme(aegis)                        readme(aegis)
  269.  
  270.  
  271.     edited text in the event of a failure.
  272.  
  273.     * The commands which delete files now accept a
  274.     -Interactive option, which causes them to prompt the user
  275.     for confirmation of file deletion.  This can be    made the
  276.     default    by an appropriate setting of the aliases or
  277.     individual users preferences files.  See aenfu(1),
  278.     aentu(1), aecpu(1), and    aeuconf(5) for more information.
  279.  
  280.     * The aecp(1) command now accepts directory names,
  281.     allowing whole directory trees to be copied into a
  282.     change.     The aecpu(1) command now has a    -UNChanged option
  283.     which allows the unchanged files to be uncopied.
  284.  
  285.     * The aeb command now accepts file names, allowing
  286.     partial    builds to be performed.     See aeb(1) for    more
  287.     information.
  288.  
  289.     * There    is a new aechown(1) command to facilitate
  290.     reassigning the    developer of a change which is in the
  291.     being developed    state.
  292.  
  293.     * It is    now possible for project administrators    to assign
  294.     changes    to specific developers.     See aedb(1) for more
  295.     information.
  296.  
  297.     Plus the usual crop of bug fixes and tinkering.     For
  298.     excruciating detail, and also acknowledgements of those
  299.     who generously sent me feedback, please    see the
  300.     aux/CHANGES.2.3    file included in this distribution.
  301.  
  302. ARCHIVE    SITE
  303.     The latest version of Aegis is available by anonymous FTP
  304.     from:
  305.         Host:   ftp.nau.edu    (134.114.64.90)
  306.         Dir:    /pub/Aegis
  307.         File:   aegis.2.3.tar.Z    # the complete source
  308.         File:   aegis.2.3.patch.Z    # patch    to take    2.2 to 2.3
  309.         File:   aegis.2.3.ps.Z    # PostScript of    the User Guide
  310.         File:   aegis.2.3.faq    # Frequently Asked Questions
  311.  
  312.     To use anonymous FTP, give "anonymous" as the user name
  313.     (omit the quotes) and your email address as the    password.
  314.  
  315.     My grateful thanks to Paul Balyoz <pab@ftp.cse.nau.edu>
  316.     for his    generosity in providing    this archive space.
  317.  
  318.     This directory also contains a few other pieces    of
  319.     software written by me.     Some are referred to in the
  320.     Aegis documentation.  Please have a look if you    are
  321.     interested.
  322.  
  323.     For those of you without FTP, I    recommend the use of an
  324.     ftp-by-email server.  Here is a    list of    a few (there are
  325.  
  326.  
  327.  
  328.                                 5
  329.  
  330.  
  331.  
  332.  
  333.  
  334. readme(aegis)                        readme(aegis)
  335.  
  336.  
  337.     many more):
  338.         ftpmail@decwrl.dec.com
  339.         ftpmail@cs.uow.edu.au
  340.  
  341.     In general, you    can get    a help message about how to use
  342.     each system by sending email with a subject of "help" and
  343.     a message body containing just the word    "help".
  344.  
  345. MAILING    LIST
  346.     A mailing list has been    created    so that    users of Aegis
  347.     may exchange ideas about how to    use Aegis.  Discussion
  348.     may include, but is not    limited    to: bugs, enhancements,
  349.     and applications.  The list is not moderated.
  350.  
  351.     The address of the mailing list    is
  352.         aegis-users@agso.gov.au
  353.  
  354.     To subscribe to    this mailing list, send    an email message
  355.     to majordomo@agso.gov.au with a    message    body containing
  356.     the single line
  357.         subscribe aegis-users
  358.     Please note that agso.gov.au is    an Internet site, so if
  359.     you have an address which is not readily derived from
  360.     your mail headers (majordomo is    only a Perl program,
  361.     after all) you will need to use    a message of the form:
  362.         subscribe aegis-users address
  363.     where address is an email address which    makes sense from
  364.     an Internet site.
  365.  
  366.     The software which handles this    mailing    list CANNOT send
  367.     you a copy of Aegis.  Please use FTP or    ftp-by-email,
  368.     instead.
  369.  
  370. BUILDING
  371.     Instructions on    how to build and test Aegis are    to be
  372.     found in the BUILDING file included in this distribution.
  373.  
  374. SOME HISTORY
  375.     The idea for Aegis did not come    full-blown into    my head
  376.     in the shower, as some of my programs do, but rather from
  377.     working    in a software shop which used a    simplistic form
  378.     of something similar.  That system was held together by
  379.     chewing-gum and    string,    it was written in a disgusting
  380.     variant    of Basic, and by golly the damn    thing worked
  381.     (mostly).  Aegis is nothing like it, owes none of its
  382.     code to    that system, and is far    more versatile.     It turns
  383.     out that the system used is nothing new, and is    described
  384.     in many    SCM textbooks; it is the result    of systematically
  385.     resolving development issues for large-ish teams.
  386.  
  387.     Since that company decided to close down our section (the
  388.     company    was under attack by a hostile takeover bid) we
  389.     all moved on simultaneously (all 60 of us), sometimes
  390.     working    together, and sometimes    not, but always    keeping
  391.  
  392.  
  393.  
  394.                                 6
  395.  
  396.  
  397.  
  398.  
  399.  
  400. readme(aegis)                        readme(aegis)
  401.  
  402.  
  403.     in touch.  With    suggestions and    conversations with some
  404.     of them    early in 1990, the manual entries for Aegis took
  405.     shape, and formed most of the design document for Aegis.
  406.  
  407.     Since getting the first    glimmerings of a functional Aegis
  408.     late in    1990 it    is increasingly    obvious    that I never want
  409.     to be without it ever again.  All of my    sources    that I
  410.     modify are instantly placed under Aegis, as is anything    I
  411.     distribute.  All code I    write for myself, and all new
  412.     code I write for my employer, goes under Aegis.     Why?
  413.     Because    it has fewer bugs!
  414.  
  415.     Example: one of    the sources I carry with me from job to
  416.     job is "cook", my dependency maintenance tool.    Cook had
  417.     existed    for 3 years before Aegis appeared on the scene,
  418.     and I used it daily.  When I placed cook under Aegis, I
  419.     found 6    bugs!  Since then I have found a few more.  Not
  420.     only are there now fewer bugs, but they    never come back,
  421.     because    the regression test suite always grows.
  422.  
  423. LICENSE
  424.     Aegis is free software;    you can    redistribute it    and/or
  425.     modify it under    the terms of the GNU General Public
  426.     License    as published by    the Free Software Foundation;
  427.     either version 2 of the    License, or (at    your option) any
  428.     later version.
  429.  
  430.     Aegis is distributed in    the hope that it will be useful,
  431.     but WITHOUT ANY    WARRANTY; without even the implied
  432.     warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  433.     PURPOSE.  See the GNU General Public License for more
  434.     details.
  435.  
  436.     You should have    received a copy    of the GNU General Public
  437.     License    along with this    program; if not, write to the
  438.     Free Software Foundation, Inc.,    675 Mass Ave, Cambridge,
  439.     MA 02139, USA.
  440.  
  441.     It should be in    the LICENSE file included in this
  442.     distribution.
  443.  
  444. AUTHOR
  445.     Peter Miller       UUCP:   uunet!munnari!agso.gov.au!pmiller
  446.     /\/\*           Internet:   pmiller@agso.gov.au
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.                                 7
  461.  
  462.  
  463.